cmake_minimum_required(VERSION 3.5)
project(agv_msgs)

find_package(rosidl_default_generators REQUIRED)
find_package(ament_cmake REQUIRED)
find_package(diagnostic_msgs REQUIRED)
find_package(std_msgs REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(std_msgs REQUIRED)
set(CMAKE_CXX_STANDARD 14)

set(SCRIPT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/scripts")  
set(SCRIPT_PATH "${SCRIPT_DIR}/generate_header.sh") 
set(MSG_FILE "${CMAKE_CURRENT_SOURCE_DIR}/msg/AGVEvent.msg")
 
message(STATUS "SCRIPT PATH ${SCRIPT_PATH}")
message(STATUS "MSG FILE ${MSG_FILE}")
message(STATUS "CMAKE INSTALL PREFIX ${CMAKE_INSTALL_PREFIX}")

add_custom_target(generate_event_header
    COMMAND chmod +x ${SCRIPT_PATH}
    COMMAND bash ${SCRIPT_PATH} ${MSG_FILE} ${CMAKE_INSTALL_PREFIX}/include/agv_msgs/agv_msgs
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    COMMENT "Generating event header files"
    VERBATIM
)

rosidl_generate_interfaces(
    ${PROJECT_NAME}
        msg/Attitude.msg
        msg/RelocateRadius.msg
        msg/DoSteerDir.msg
        msg/EdgeStates.msg
        msg/DaemonMonitor.msg
        msg/PowerState.msg
        msg/Action.msg
        msg/NavigateInfo.msg
        msg/AGVMode.msg
        msg/Chassis.msg
        msg/Header.msg
        msg/AgvOdomCalib.msg
        msg/Velocity.msg
        msg/PeriphCustomOperation.msg
        msg/Network.msg
        msg/Inputdevices.msg
        msg/Input.msg
        msg/Visualization.msg
        msg/ConnectionMonitor.msg
        msg/Inputstatus.msg
        msg/AgvInfo.msg
        msg/BatteryState.msg
        msg/Position.msg
        msg/Output.msg
        msg/ConfidenceLevel.msg
        msg/RecognitionResult.msg
        msg/OutPutsNew.msg
        msg/ControlPoint.msg
        msg/BatInfo.msg
        msg/Diagnosis.msg
        msg/SiteSurvey.msg
        msg/NodePosition.msg
        msg/OutputPort.msg
        msg/ActionFeedback.msg
        msg/AvoidObstaInfo.msg
        msg/CANopenNodeState.msg
        msg/MapEditErase.msg
        msg/PointCloudPubSwitch.msg
        msg/Loads.msg
        msg/HD1000.msg
        msg/Order.msg
        msg/GrossLoad.msg
        msg/ReadInPutsNewSim.msg
        msg/Errors.msg
        msg/State.msg
        msg/Connection.msg
        msg/MBCmdState.msg
        msg/CANopenNodeStatus.msg
        msg/LoadDimensions.msg
        msg/CalibProgress.msg
        msg/PeriphMotorInfo.msg
        msg/LaserObstacle.msg
        msg/Info.msg
        msg/InfoReference.msg
        msg/ActionAssign.msg
        msg/OutputsAnalog.msg
        msg/MapPng.msg
        msg/AGVEventAction.msg
        msg/SteerDirFeedBack.msg
        msg/PeriphStatus.msg
        msg/DriverState.msg
        msg/InitPose.msg
        msg/OdometryLite.msg
        msg/DashboardState.msg
        msg/PeriphErrReport.msg
        msg/LidarCalibPercent.msg
        msg/AGVPosition.msg
        msg/AgvStateTest.msg
        msg/SafetyControllerState.msg
        msg/AccessPoint.msg
        msg/StatusResponse.msg
        msg/PairTypeAnalog.msg
        msg/PoseWithConfidence.msg
        msg/RfidSensor.msg
        msg/SetStopBits.msg
        msg/ActionState.msg
        msg/Information.msg
        msg/EmergencyStopState.msg
        msg/Load.msg
        msg/ReadInPuts.msg
        msg/NodeStates.msg
        msg/Error.msg
        msg/ActionParam.msg
        msg/PeriphTeleop.msg
        msg/Edge.msg
        msg/EdgeState.msg
        msg/AGVEventStatus.msg
        msg/MapEditPoints.msg
        msg/AgvNavStatus.msg
        msg/ReadInPutsAnalog.msg
        msg/NavType.msg
        msg/PairTypeInt.msg
        msg/FtpState.msg
        msg/TapeSensor.msg
        msg/InstantActions.msg
        msg/RcsMessage.msg
        msg/MapNode.msg
        msg/MapEditTransform.msg
        msg/MBSlaveStates.msg
        msg/QrCalibPercent.msg
        msg/AGVEvent.msg
        msg/Trajectory.msg
        msg/DriversInfo.msg
        msg/ReadInPutsNew.msg
        msg/OrderActions.msg
        msg/ErrorReference.msg
        msg/TapeSensors.msg
        msg/AgvAutoStatus.msg
        msg/MapEditPoly.msg
        msg/SafetyState.msg
        msg/MagnetInfo.msg
        msg/BoundingBoxReference.msg
        msg/MrdvsCamera.msg
        msg/DoForkLift.msg
        msg/AvoidObsta.msg
        msg/NodeState.msg
        msg/MagnetCorrection.msg
        msg/ControlVoice.msg
        msg/NavCorrectFlag.msg
    DEPENDENCIES
        geometry_msgs
        diagnostic_msgs
        std_msgs
) 
 
add_dependencies(${PROJECT_NAME} generate_event_header)
ament_package()

